home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / mkrom.doc < prev    next >
Text File  |  1995-03-31  |  4KB  |  143 lines

  1.                         MKROM docs 
  2.                         ~~~~~~~~~~ 
  3.  
  4. MKROM library provides the command MKROM which gets a bit closer to 
  5. MAKEROM.EXE program in the hp tools package. Users with previous experience 
  6. with MAKEROM should have no trouble using this program, for others I recommend 
  7. reading MAKEROM.DOC too. 
  8.  
  9.                  
  10.         !!!     MKROM needs <-RPL-> library to work.    !!! 
  11.         !!!     MKROM uses low level entries in <-RPL-> !!! 
  12.         !!!     so MKROM must be specially compiled for !!! 
  13.         !!!     the <-RPL-> version you're using.       !!! 
  14.  
  15.  
  16. Tokens used: 
  17.  
  18. LIBRARY hhh 
  19. [xEXTERNAL/EXTERNAL sss] 
  20.  
  21.         hhh = library number in hex 
  22.  
  23.         Starts library compilation. If no LIBRARY token is found in the source 
  24.         MKROM works just like ->RPL. 
  25.  
  26.         Following external definitions are scanned to mark which names are to 
  27.         be interpreted as ROMPTRs. xEXTERNAL defines a visible romptr, 
  28.         EXTERNAL a hidden ROMPTR. Names defined by xEXTERNAL are called by 
  29.         adding 'x' to the front of sss. 
  30.  
  31.         The order of xEXTERNAL/EXTERNAL definitions define the romptr numbers 
  32.         to assign for the names so that names defined by xEXTERNAL are counted 
  33.         from 0 upwards first. 
  34.  
  35.         Currently libraries cannot be embedded into other source, use INCLUDE 
  36.         to get around this problem by including the makefile for the library. 
  37.  
  38. ENDLIB 
  39.         Marks the end of a library. (Hash and link tables are formed) 
  40.  
  41. xTITLE "ssss" 
  42.         Sets library title. Default is no title. 
  43.  
  44. xCONFIG 
  45.         Marks config program to be next in stream. Default is no config. 
  46.  
  47. xMESG 
  48.         Marks message table to be next in stream. Default is no table. 
  49.  
  50.  
  51.  
  52. xNAME sss 
  53.         Marks a visible romptr named sss (defined by xEXTERNAL) 
  54.  
  55. sNAME sss hhh 
  56.         Marks a visible romptr named sss (defined by xEXTERNAL) 
  57.         Assigns hhh as the first hash to use when building hash table. 
  58.         If hhh = NIL a null name is used as the hash name. 
  59.  
  60. tNAME sss hhh 
  61.  
  62.         Assigns a new hash name (hhh) for romptr sss. Overrides name set by 
  63.         xNAME, but not the one set by sNAME. A romptr can have several hash 
  64.         names, which all can be typed, the one defined first is the one shown 
  65.         on stack & library menu.  
  66.  
  67.         If hhh = NIL a null name is used as the hash name. 
  68.  
  69. NULLNAME sss 
  70.  
  71.         Marks a hidden romptr named sss. Default hash name is NIL. 
  72.  
  73.  
  74. The difference between NULLNAME and xNAME (+sNAME): 
  75.  
  76. NULLNAME does not insert any code into the stream, xNAME (+sNAME) inserts the 
  77. library number and command number to the stream. As with MAKEROM the user is 
  78. assumed to take care of the library header field for xNAMEs (+sNAMEs) 
  79.  
  80.  
  81.  
  82. SOURCE sss 
  83.  
  84.         Redefines default source directory to be in a port. Purpose is to get 
  85.         more free RAM for the compilation process just by giving a 'makefile' 
  86.         as argument to MKROM. 
  87.         :&:{ sss IDname } is used to recall the source. 
  88.         If sss = NIL current directory is used again. 
  89.  
  90. INCLUDE sss 
  91.  
  92.         Includes the source stored into a variable called sss into the current 
  93.         location. Obeys directory defined by SOURCE. 
  94.  
  95. INCLOB sss 
  96.  
  97.         Includes the object stored into a variable called sss into the current 
  98.         location. Obeys directory defined by SOURCE. 
  99.         If LIBRARY token has been met, all ID->ROMPTR conversions are done as 
  100.         implied by the external definitions. No 'x' header is assumed for 
  101.         the IDs defined by xEXTERNAL. 
  102.  
  103.  
  104.  
  105. Example makefile skeleton: 
  106.  
  107. ------------------------------------------------------------------------------- 
  108. ASSEMBLE 
  109. xxROMID EQU #nnn 
  110. RPL 
  111.  
  112. LIBRARY nnn 
  113. xEXTERNAL sss1 
  114. EXTERNAL sss2 
  115.  
  116. xTITLE "Title V1.0" 
  117.  
  118. (SOURCE dirname) 
  119.  
  120. xCONFIG 
  121. :: DOBINT xxROMID TOSSRP ; 
  122.  
  123. (xMESG INCLOB MsgArry) 
  124.  
  125. NIBB 1 8 
  126. xNAME sss1 
  127. INCLUDE Name1 
  128.  
  129. NULLNAME sss2 
  130. INCLUDE Name2 
  131.  
  132. ENDLIB 
  133. ------------------------------------------------------------------------------- 
  134.  
  135. Notes: 
  136.  
  137.         The names used by INCLUDE/INCLOB have no connection whatsoever to the 
  138.         names defined by xNAME etc. 
  139.  
  140.         Use NIBB 1 8 in front of xNAME and sNAME tokens to mark a normal cmd. 
  141.         Use NIBB 1 000 to mark a function. (If libnum < 1792) 
  142.  
  143.